// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Police Jobs 2026 15053 Posts 25-04-2026 Apply Online! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Police Jobs 2026 15053 Posts 25-04-2026 Apply Online!

These operations, part of a layered threat system, challenge previous assessments of Tehran's naval capabilities and highlight difficulties in securing the vital oil route. The advanced USS Rafael Peralta seized an Iranian vessel, part of a broader crackdown. The US Navy has intensified maritime pressure on Iran with a recent interception, even as diplomatic talks involving American envoys and Iran are underway in Pakistan.

US Iran War Live Updates: Trump on Iran peace deal says "it will happen" – ABC news reporter

indian defence updates

Union minister Jyotiraditya Scindia announced a major defence manufacturing plant for the Adani group in Kolaras, Guna. China's People's Liberation Army Navy (PLAN) may be developing its fourth aircraft carrier, with recent video evidence and naming conventions suggesting it could be nuclear-powered The government is keen on the theatrisation of India's armed forces, but doubts expressed by the IAF chief reflect concerns about the preparation for and rolling out of joint service commands The conflict in Iran shows the efficacy of inexpensive drones in overwhelming sophisticated air defence systems and drawing them into expensive duels.

  • India’s Army Chief General Upendra Dwivedi is in the US, continuing a series of high-level defence exchanges.
  • The traditional separation between civilian space programs and military applications is rapidly eroding, and India is now moving toward a whole-of-nation architecture where government agencies, private industry, and the armed forces are converging to build space-based capabilities at scale.
  • Now, three new army garrisons are ready to meet any hostile action
  • Besides, the session highlighted the importance of enhancing indigenous defense technologies in line with the Atmanirbhar Bharat initiative, reducing dependence on foreign technologies, and encouraging strategic partnerships between the military, technology experts, and industry leaders to boost innovation and develop responsible solutions for current and future challenges.
  • Minister of Defence Shri Rajnath Singh chaired a high-level meeting with all defence ministry secretaries to review the progress of various schemes and projects.
  • In the turbulent backdrop of 1971, West Bengal witnessed army divisions being deployed to curb poll-related violence.

DRDO unveils amphibious battle platforms with crewless turrets, anti-tank missile capability

Carbon Fiber Reinforced Plastic (CFRP) inherently reflects less radar energy compared to metallic structures, but the real advantage lies in fabrication precision. Once deployed, Crew Transfer Vessels (CTVs) or Platform Supply Vessels (PSVs) undertake slow maritime transit to offshore rigs, further compounding delays. The traditional offshore logistics chain has long been a weak link in an otherwise technologically advanced energy ecosystem. In contrast, cognitive EW systems operate by feeding carefully engineered false returns into the adversary’s sensor chain, altering the interpreted imagery without triggering suspicion. At the core of this shift is the deployment of SAR Active Decoy systems—also referred to as Coherent Deception Jamming—designed not to merely obscure signals, but to actively manipulate what enemy sensors perceive, particularly synthetic aperture radar (SAR) satellites.

Balochistan to Bangladesh: Why Pakistan is boycotting India World Cup match

The Israeli military published for the first time a map of its ​new deployment line inside Lebanon on Sunday, ​bringing dozens of mostly abandoned Lebanese villages under its control, days after ​a ceasefire with Hezbollah took effect. During these two decades of journey in mainstream media, Asit has mainly covered external affairs, markets and personal finance. So, the Malacca Strait remains a powerful deterrence factor for India against China. Akshat Garg said that from a crude‑oil‑market standpoint, any credible threat to Malacca‑linked flows would hurt China’s own manufacturers and force India to recalibrate its Malacca Strait‑linked import basket, making both sides mindful of the fine line between coercion and mutual economic pain. Any major conflict or deliberate blockade by India of this maritime chokepoint would severely disrupt Beijing’s energy supply chain, crimping the dragon’s industrial and commercial activity at a time when it is already sensitive to global oil‑price volatility.

The US Central Command (CENTCOM) on Thursday (local time) said that US forces are actively enforcing a large-scale maritime blockade targeting Iran's ports and coastline, involving more than 10,000 personnel, over a dozen naval vessels, and upwards of 100 aircraft. Get insights on military technology, defence developments, and strategic affairs shaping India’s national security. A latest video released by the Chinese navy highlighting China’s blue-water naval ambitions has sparked speculation that its fourth aircraft carrier currently being built will be a nuclear-powered one. The goal is to modernise the Indian armed forces into a technologically advanced, combat-ready force capable of multi-domain operations, including land, sea, air, cyber and space. These systems are intended to serve as last-line defensive weapons, designed to neutralize drones, loitering munitions, and other low-flying aerial threats that penetrate outer air defence layers. The traditional separation between civilian space programs and military applications is rapidly eroding, and India is now moving toward a whole-of-nation architecture where government agencies, private industry, and the armed forces are converging to build space-based capabilities at scale.

Nearly a year after Operation Sindoor, a ground-level assessment along the Punjab border reveals a fundamentally transformed Indian air defence posture—one that is faster, denser, and far more integrated than before. Designed to operate at the intersection of clean energy aviation and persistent surveillance, Tejasvaan reflects a growing shift toward autonomous systems capable of remaining airborne for extended durations without reliance on conventional fuel-based propulsion. The Indian Air Force’s evolving Super Sukhoi construct—pairing a large-aperture AESA radar with a ramjet-powered long-range missile—does not eliminate stealth advantages, but it does compress them to the point where they are no longer decisive on their own.

Qatar’s Ministry of Foreign Affairs said the attack was a “blatant violation of Kuwait’s sovereignty and a serious threat to regional security and stability”. The meeting is being attended by Deputy Prime Minister Muhammad Ishaq Dar and army chief Asim Munir, in addition to the Prime Minister. According to media reports, Iran Foreign Minister Syed Abbas Araghchi has left Pakistan after meeting PM Shahbaz Sharif and army chief Asim Munir in Islamabad. Iran's indian defence updates recent use of swarms of fast boats to seize container ships near the Strait of Hormuz is raising new maritime security concerns.

He highlighted the importance of joint training, technological advancements, and civil-military integration to build future-ready forces. The video film ‘Into The Deep’ was released on Wednesday to mark the 77th anniversary of the founding of the People’s Liberation Army Navy showcased Chinese navy’s transition from maritime ambitions and coastal defences. The move marks a significant expansion for the company, which has traditionally focused on combat training and simulation systems, into frontline defence hardware manufacturing. Zen Technologies Limited has received a government-issued arms manufacturing licence, enabling the Hyderabad-based firm to enter the production of air defence cannons tailored for counter-drone and low-altitude threat environments.

LEAVE A REPLYYour email address will not be published. Required fields are marked *Your Name

Design and Develop by Ovatheme